package com.mxfcode.bbs_common.htool;

import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;

import javax.sound.midi.Soundbank;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @类名 HutoolUtil
 * @描述 TODO
 * @作者 mxf
 * @创建日期 2021/1/27 11:07
 **/
public class HutoolUtil {

    /**
     * 转换格式：将字符串格转换成日期格式
     * 例如：2021-1-27 12:34:11，2021/1/27，2021年1月27日
     * 输出格式为：Wed Jan 27 12:34:11 CST 2021
     * @param strDate
     * @return
     */
    public static Date strToDate(String strDate){
        return Convert.toDate(strDate);
    }

    /**
     * 将日期格式转换成指定格式字符串输出
     * 参数1：Date,DateTime
     * 参数2：yyyy-MM-dd HH:mm:ss
     * 输出格式为：2021-01-27 12:34:11
     * @param date
     * @param format
     * @return
     */
    public static String dateToStr(Date date,String format){
        return DateUtil.format(date,format);
    }

    public static Date getNowTime(){
        return new Date();
    }

    public static void main(String[] args) {
        /*String time1 = "2021-1-27 12:34:11";
        String time2 = "2021/1/27";
        String time3 = "2021年1月27日";
        Date date = strToDate(time1);
        Date date2 = strToDate(time2);
        Date date3 = strToDate(time3);
        DateTime parse = DateUtil.parse(time1,"yyyy-MM-dd HH:mm:ss");
        String format = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss");
        System.out.println(parse);
        System.out.println(format);
        System.out.println(format.equals(parse));
        System.out.println(date);
        System.out.println(date2);
        System.out.println(date3);*/

        double n1 = 1.234;
        double n2 = 1.234;
        double result;
        BigDecimal bigDecimal = new BigDecimal(647.8);
        BigDecimal bigDecimal2 = new BigDecimal(6.38);
        BigDecimal add = bigDecimal.add(bigDecimal2);
        System.out.println(add);
        System.out.println(NumberUtil.add(bigDecimal,bigDecimal2));
        //对float、double、BigDecimal做加减乘除操作
        result = NumberUtil.add(n1, n2);
        System.out.println(result);
        result = NumberUtil.sub(n1, n2);
        System.out.println(result);
        result = NumberUtil.mul(n1, n2);
        System.out.println(result);
        result = NumberUtil.div(n1, n2);
        System.out.println(result);
        //保留两位小数
        BigDecimal roundNum = NumberUtil.round(n1, 2);
        String n3 = "1.234";
        //判断是否为数字、整数、浮点数
        boolean number = NumberUtil.isNumber(n3);
        System.out.println(number);
        boolean integer = NumberUtil.isInteger(n3);
        System.out.println(integer);
        boolean aDouble = NumberUtil.isDouble(n3);
        System.out.println(aDouble);

    }
}
